package com.example.rssreader.dto;

import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 文章响应DTO
 * 用于返回文章信息给前端
 * 
 * @author RSS Reader Team
 * @version 1.0.0
 * @since 2024-01-01
 */
@Data
@Accessors(chain = true)
public class ArticleResponse {

    /**
     * 文章ID
     */
    private Long id;

    /**
     * 文章标题
     */
    private String title;

    /**
     * 文章链接地址
     */
    private String link;

    /**
     * 文章摘要/描述
     */
    private String description;

    /**
     * 文章完整内容
     * 仅在获取文章详情时返回
     */
    private String content;

    /**
     * 文章作者
     */
    private String author;

    /**
     * 文章发布时间
     */
    private LocalDateTime publishedAt;

    /**
     * 是否已读
     */
    private Boolean isRead;

    /**
     * 所属RSS源信息
     */
    private FeedInfo feed;

    /**
     * RSS源基本信息内嵌类
     */
    @Data
    @Accessors(chain = true)
    public static class FeedInfo {
        /**
         * RSS源ID
         */
        private Long id;

        /**
         * RSS源标题
         */
        private String title;

        /**
         * RSS源URL
         */
        private String url;
    }
}